package com.syf.model;

import java.math.BigDecimal;
import java.util.Iterator;
import java.util.LinkedList;

/**
 * 【2】合并订单的数据结构
 */
public class MergeOrder {

    //买入/卖出订单【LinkedList链表：很适合数据的动态插入和删除   link.getFirst() 、link.getLast()】
    //挂单的价格相同的存储进LinkedList(按时间排序)，否则只有一条记录
    private LinkedList<Order> orders = new LinkedList<>();

    //最后位置添加一个
    public void add(Order order) {
        orders.addLast(order);
    }

    // 从头获取数据
    public Order get() {
        return orders.get(0);
    }

    public int size() {
        return orders.size();
    }

    public BigDecimal getPrice() {
        return orders.get(0).getPrice();
    }

    public Iterator<Order> iterator() {
        return orders.iterator();   //获取链表的 迭代器对象
    }

    public BigDecimal getTotalAmount() {
        BigDecimal total = new BigDecimal(0);
        for (Order item : orders) {
            total = total.add(item.getAmount());
        }
        return total;
    }
}
